package com.example.mybatis1.mapper;

import com.example.mybatis1.model.ArticleInfo;
import com.example.mybatis1.model.Userinfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-03-02
 * Time: 23:04
 */

@Mapper  // 加上这个注解之后就不是普通的接口, 是MyBatis里面的接口, 可以注入
public interface UserMapper {
    // 这里写接口, 后面会在 mybatis xml 里面写实现
    // 注意这里方法命名用了 get.., 那么最好都用 get.., 就不用 find..
    // 同时 get 对应 add, find 对应 save


    // 增加(插入), 有两种方法可以插入
    // 返回影响到的行数
    public int addUserinfo1(Userinfo userinfo);
    // 返回自增id
    public int addUserinfo2(Userinfo userinfo);

    // 删除操作
    public int deleteUserinfoById(@Param("id") Integer id);
    // 查找
    public Userinfo getUserinfoById(@Param("id") Integer id);
    public List<Userinfo> login(@Param("id") Integer id, @Param("username") String username);
    public List<Userinfo> orderById(@Param("order") String order);
    public List<Userinfo> getUserByLocation(@Param("location") String location);
    public List<Userinfo> getUserByLike(@Param("name") String name);

//    多表查询中的一对多
    public Userinfo getUserById(@Param("id") Integer id);

    // 修改操作
    public int updateUserinfoById(@Param("address") String address,
                                  @Param("id") Integer id);
}
